using陳述式可以用來簡化try{} finally{} 區塊,但並不包含 catch 的部分
使用using 最主要的目的是為了讓物件建立的同時能確保該物件所佔用的資源一定會被完整釋放
下面這段程式使用三個按鈕示範,button1 連按兩下 就會跳出訊息 "由於另一個處理序正在使用檔案 'C:\test.txt',所以無法存取該檔案。"
button2 跟 button3 則會釋放資源,因此連按不會出現,所以以後要開檔建議使用using的方式
避免自己忘記下Dispose
private void button1_Click(object sender, EventArgs e)
{
FileStream fs = null;
fs = new FileStream(@"C:\test.txt", FileMode.Open);
}
private void button2_Click(object sender, EventArgs e)
{
FileStream fs = null;
try
{
fs = new FileStream(@"C:\test.txt", FileMode.Open);
}
finally
{
fs.Dispose();
}
}
private void button3_Click(object sender, EventArgs e)
{
using(FileStream fs=new FileStream(@"C:\test.txt", FileMode.Open))
{
}
}